#pragma once

#include "../TestFramework/TestAutoPtr.h"
#include "../TestFramework/NonCopyable.h"
#include "../TestFramework/TestString.h"
#include "../TestFramework/TestVector.h"
#include <memory>

namespace Explorer
{
    class Item;
    typedef std::shared_ptr<Item> ItemPtr;
    typedef TestFramework::TestVector<ItemPtr> Items;
    typedef TestFramework::TestString ItemType;
    typedef TestFramework::TestWString ItemName;

    class Item : TestFramework::NonCopyable
    {
    public:
        virtual ItemName GetName() const = 0;
        virtual ItemType GetType() const = 0;
        virtual bool IsParentType() const = 0;
    };
}
